package com.toycloud.system.utils;

/**
 * @author dbl
 * @describe
 * @date 2024年12月30日 10:32
 */
import org.jsoup.Jsoup;

import java.util.HashMap;
import java.util.Map;

public class FileUrlUtils {

    // 定义一个映射，用于将文件扩展名映射到相应的文件类型
    private static final Map<String, String> fileTypeMap = new HashMap<>();
    static {
        fileTypeMap.put("png", "image");
        fileTypeMap.put("jpg", "image");
        fileTypeMap.put("jpeg", "image");
        fileTypeMap.put("gif", "image");
        fileTypeMap.put("bmp", "image");
        fileTypeMap.put("doc", "doc");
        fileTypeMap.put("docx", "doc");
        fileTypeMap.put("xls", "doc");
        fileTypeMap.put("xlsx", "doc");
        // 可以根据需要添加更多的文件类型映射
    }

    /**
     * 从URL中提取文件名。
     *
     * @param url 包含文件路径的URL字符串
     * @return 文件名（包括扩展名）
     */
    public static String getFileNameFromUrl(String url) {
        if (url == null || url.isEmpty()) {
            return "";
        }
        // 移除可能存在的协议部分和斜杠
        String[] parts = url.split("/");
        // 获取最后一个元素作为文件名
        return parts[parts.length - 1];
    }

    /**
     * 根据文件扩展名返回文件类型。
     *
     * @param fileName 文件名（包括扩展名）
     * @return 文件类型，如"image"或"doc"
     */
    public static String getFileType(String fileName) {
        if (fileName == null || fileName.isEmpty()) {
            return "unknown";
        }
        // 获取文件扩展名
        int dotIndex = fileName.lastIndexOf('.');
        if (dotIndex == -1) {
            return "unknown"; // 如果没有找到扩展名，则返回未知类型
        }
        String extension = fileName.substring(dotIndex + 1).toLowerCase();
        // 查找映射中的文件类型
        return fileTypeMap.getOrDefault(extension, "doc"); // 默认返回"doc"类型
    }

    public static String stripHtmlTags(String html) {
        if (html == null || html.isEmpty()) {
            return html;
        }
        // 使用Jsoup解析并去除HTML标签
        return Jsoup.parse(html).text();
    }

    // 测试代码
    public static void main(String[] args) {
        String url = "ws.toycloud.com/talkres/feedback/PCtm_d9c8750bed0b3c7d089fa7d55720d6cf.png";
        System.out.println("File Name: " + getFileNameFromUrl(url));
        System.out.println("File Type: " + getFileType(getFileNameFromUrl(url)));
    }
}